

#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include "user_flash.h"   
#include "cm_fs.h"





//static FILE  


 /**
 *  @brief 打开一个文件
 *
 *  @param [in] filename 文件名称
 *  @param [in] flag 打开参数
 *
 *  @return
 *   >= 0 - 文件描述符 \n
 *   <  0 - 错误
 *
 *  @details 文件系统中无路径/文件夹功能，勿在filename入参中传入路径信息
 */

int32_t cm_fs_open(const char *filename, int32_t flag)
{
//FILE*   File_Unlock(const char *filename);
//#define File_Lock   FLASH_Lock
  // return fopen (USER_FLASH_FILE_PATH,"r+b");//以（读写）形式打开文件   
    return 0;   
}



/**
 *  @brief 关闭一个文件
 *
 *  @param [in] fd 文件描述符
 *
 *  @return
 *   = 0 - 成功 \n
 *   < 0 - 失败
 */
int32_t cm_fs_close(int32_t fd)
{
   return 0;
}



/**
 *  @brief 读取文件内容
 *
 *  @param [in]  fd   文件描述符
 *  @param [out] buf  存储数据的缓冲区指针
 *  @param [in]  size 要读取的数据长度
 *
 *  @return
 *   >= 0 - 实际的读取长度 \n
 *   <  0 - 读取失败
 */
int32_t cm_fs_read(int32_t fd, void *buf, uint32_t size)
{
   return 0;
}



/**
 *  @brief 写入文件内容
 *
 *  @param [in] fd   文件描述符
 *  @param [in] buf  存储数据的缓冲区指针
 *  @param [in] size 要写入的数据长度
 *
 *  @return
 *   >= 0 - 实际的写入长度 \n
 *   <  0 - 写入失败
 */
int32_t cm_fs_write(int32_t fd, const void *buf, uint32_t size)
{

   return 0;
}



#if 0
/**
 *  @brief 将处于堆栈状态的文件与存储设备中的文件同步
 *
 *  @param [in] fd 文件描述符
 *
 *  @return
 *   = 0 - 同步成功 \n
 *   < 0 - 同步失败
 *
 *  @details 本平台不支持该接口
 */
int32_t cm_fs_sync(int32_t fd);
#endif

/**
 *  @brief 文件指针定位
 *
 *  @param [in] fd 文件描述符
 *  @param [in] offset 指针偏移量
 *  @param [in] base 偏移起始点，CM_FS_SEEK_SET：文件开头 CM_FS_SEEK_CUR：当前位置 CM_FS_SEEK_END：文件末尾
 *
 *  @return
 *   = 0 - 成功 \n
 *   < 0 - 失败
 *
 *  @details offset不支持为负数
 */
int32_t cm_fs_seek(int32_t fd, int32_t offset, int32_t base)
{

   return 0;
}



/**
 *  @brief 删除文件
 *
 *  @param [in] file_name 文件路径
 *
 *  @return
 *   >= 0 - 成功 \n
 *   <  0 - 失败
 */
int32_t cm_fs_delete(const char *file_name)
{

   return 0;
}



/**
 *  @brief 更改文件名
 *
 *  @param [in] src  原文件名
 *  @param [in] dest 新文件名
 *
 *  @return
 *   = 0 - 成功 \n
 *   < 0 - 失败
 */
int32_t cm_fs_move(const char *src, const char *dest)
{

   return 0;
}



/**
 *  @brief 检查文件是否存在
 *
 *  @param [in] file_name 文件名称
 *
 *  @return
 *   = 1 - 存在 \n
 *   = 0 - 不存在
 *
 *  @details 文件系统中无路径/文件夹功能，勿在path入参中传入路径信息
 */
int32_t cm_fs_exist(const char *file_name)
{
  if( true == File_Test( file_name)  )  
  {
     return 1;
  }else{
     return 0;
  }

}



/**
 *  @brief 获取文件大小
 *
 *  @param [in] file_name 文件路径
 *  @return
 *
 *   >= 0 - 文件长度 \n
 *   <  0 - 操作失败
 *
 *  @details More details
 */
int32_t cm_fs_filesize(const char *file_name)
{

   return 0;

}























